package cassys.dataaccess.hibernate;

/**
 * @author Priyanka
 *
 */
import cassys.dataaccess.AssessmentDAO;
import cassys.dataaccess.DAOFactory;
import cassys.dataaccess.EvaluationDAO;
import cassys.dataaccess.LectureDAO;
import cassys.dataaccess.ModuleDAO;
import cassys.dataaccess.PeerAssessmentDAO;
import cassys.dataaccess.StudentDAO;
import cassys.dataaccess.StudentModuleTeamDAO;
import cassys.dataaccess.TeamDAO;
import cassys.dataaccess.UserDAO;

public class DAOFactoryImpl extends DAOFactory {

    private LectureDAO lecturerDAO = null;
    private EvaluationDAO evaluationDAO = null;
    private ModuleDAO moduleDAO = null;
    private PeerAssessmentDAO peerAssessmentDAO = null;
    private StudentDAO studentDAO = null;
    private StudentModuleTeamDAO studentModuleTeamDAO = null;
    private TeamDAO teamDAO = null;
    private UserDAO userDAO = null;
    private AssessmentDAO assessmentDAO = null;

    public DAOFactoryImpl() {
        super();
        lecturerDAO = new LectureDAOImpl();

        evaluationDAO = new EvaluationDAOImpl();

        moduleDAO = new ModuleDAOImpl();

        peerAssessmentDAO = new PeerAssessmentDAOImpl();

        studentDAO = new StudentDAOImpl();

        studentModuleTeamDAO = new StudentModuleTeamDAOImpl();

        teamDAO = new TeamDAOImpl();

        userDAO = new UserDAOImpl();

        assessmentDAO = new AssessmentDAOImpl();

    }

    public LectureDAO getLecturerDAO() {
        return lecturerDAO;

    }

    ;
    
    public EvaluationDAO getEvaluationDAO() {
        return evaluationDAO;
    }

    public ModuleDAO getModuleDAO() {
        return moduleDAO;
    }

    ;
    
    public PeerAssessmentDAO getPeerAssessmentDAO() {
        return peerAssessmentDAO;
    }

    ;
    
    public StudentDAO getStudentDAO() {
        return studentDAO;
    }

    public StudentModuleTeamDAO getStudentModuleTeamDAO() {
        return studentModuleTeamDAO;
    }

    public TeamDAO getTeamDAO() {
        return teamDAO;
    }

    public UserDAO getUserDAO() {
        return userDAO;
    }

    @Override
    public AssessmentDAO getAssessmentDAO() {
        return assessmentDAO;
    }
}